
package Modelo;

/**
 *
 * @author Ddj Murillo
 */

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.LinkedList;
import javax.swing.JOptionPane;

public class DetallesOrdenesDeCompraModelo {
        ConexionModelo conexion=new ConexionModelo();
	private transient Connection con;
	ResultSet rs;


//linkedlist clase de java para generar listas
//preparedstatement permite prepara el estado recibir la informacion de la base de datos
//rsultset el resultado
 public LinkedList consultaDetallesTabla(String consulta)throws SQLException{
     if( !conexion.isConnect() ){
          con=conexion.connect();
           while(!conexion.isConnect()){
                conexion.connect();
           }
     }

     	LinkedList listaClie=new LinkedList();
	PreparedStatement pstmt=null;
	ResultSet rs=null;
  	try{
                pstmt=con.prepareStatement("select * from detallesordenesdecompra where OrdenDeCompra_consecutivo='"+ consulta + "'");

  		rs=pstmt.executeQuery();
  		while(rs.next()){
  			listaClie.add(DetallesOrdenesDeCompra.load(rs));
  		}

  	}finally{
 		if(rs!=null){
			rs.close();
		}
		if(pstmt!=null){
			pstmt.close();
			pstmt=null;
		}
	}

	return listaClie;
 }
/**
 * Inserto nuevo detalle de pedido
 * @param pedido
 * @throws SQLException
 */
 public void setNuevoDetallesCompra(DetallesOrdenesDeCompra dOrdencompra) throws SQLException {// insertar datos a la base de datos
        if( !conexion.isConnect() ){
          con=conexion.connect();
           while(!conexion.isConnect()){
                conexion.connect();
           }
     }

        PreparedStatement pstmt=null;
        try{

                pstmt=con.prepareStatement("insert into detallespedido (itemNo,valorUnitario,cantidadDecimal,OrdenDeCompra_consecutivo,producto_codigo)values(?,?,?,?,?)");
                
                pstmt.setInt(1,  dOrdencompra.getItemNo());
                pstmt.setDouble(2,  dOrdencompra.getValorUnitario());
                pstmt.setDouble(3, dOrdencompra.getCantidadDecimal());
                pstmt.setString(4,  dOrdencompra.getOrdenCompra_consecutivo());
		pstmt.setString(5,  dOrdencompra.getProducto_codigo());

		pstmt.executeUpdate();

        }finally{
               if( pstmt!=null )
                  pstmt.close();
        }
    }
/*
 //actualizar donde consulta cedula o codigo y dato es el valor a cambiar
  public void actualizarPedido(PedidoDetalles pedido,String consulta) throws SQLException {// insertar datos a la base de datos
        if( !conexion.isConnect() )
          con=conexion.connect();

        PreparedStatement pstmt=    null;
        try{

                pstmt=con.prepareStatement("update detallespedido set "
                        + "consecutivoPedido='" + pedido.getConsecutivoPedido() + "',"
                        + "codigoProducto='" + pedido.getCodigoProducto() + "',"
                        + "valorUnitario='" + pedido.getCantidadSolicitada() + "',"
                        + "cantidad='" + pedido.getValorUnitario() + "'"
                        + " where consecutivopedido='" + consulta +"'");
		pstmt.executeUpdate();

        }finally{
               if( pstmt!=null )
                  pstmt.close();
        }
    }*/

  /**
   * borra registros de detalles que contengan el consecutivo del pedido
   * @param consecutivo
   * @throws SQLException
   */
    public void deleteDetalles(String consecutivo) throws SQLException{
        if( !conexion.isConnect() ){
          con=conexion.connect();
           while(!conexion.isConnect()){
                conexion.connect();
           }
     }

        PreparedStatement pstmt=    null;
        try{

                pstmt=con.prepareStatement("DELETE FROM detallesordenesdecompra "
                                           + "where OrdenDeCompra_consecutivo='" + consecutivo + "'");
		pstmt.executeUpdate();

        }finally{
               if( pstmt!=null )
                  pstmt.close();
        }
    }

}
